]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
combo-box-menu-item: Propagate style changes to the combo menu
authorFlorian Müllner <fmuellner@gnome.org>
Wed, 26 Oct 2011 16:29:59 +0000 (18:29 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Tue, 15 Nov 2011 12:46:08 +0000 (13:46 +0100)
ComboBoxMenuItems use ClutterClones to reconstruct the active item
in the associated ComboMenu to not impose a particular MenuItem type
in the menu. However, this results in style changes (for instance
those triggered by icon-theme or text-scaling-factor changes) of
the ComboBoxMenuItem not having a visual effect until the ComboBoxMenu
is shown.
As a fix, force a style update on the ComboBoxMenu when the item's
style changes.

https://bugzilla.gnome.org/show_bug.cgi?id=662799

js/ui/popupMenu.js

index e5e992174e89f6ab1fa658da5aa9434f9742e0bb..0c047487fcb1efea60856731794b90ab795a9f1f 100644 (file)
@@ -1500,6 +1500,8 @@ PopupComboMenu.prototype = {
         this.actor._delegate = this;
         this.actor.connect('key-press-event', Lang.bind(this, this._onKeyPressEvent));
         this.actor.connect('key-focus-in', Lang.bind(this, this._onKeyFocusIn));
+        sourceActor.connect('style-changed',
+                            Lang.bind(this, this._onSourceActorStyleChanged));
         this._activeItemPos = -1;
         global.focus_manager.add_group(this.actor);
     },
@@ -1519,6 +1521,10 @@ PopupComboMenu.prototype = {
         activeItem.actor.grab_key_focus();
     },
 
+    _onSourceActorStyleChanged: function() {
+        _ensureStyle(this.actor);
+    },
+
     open: function() {
         if (this.isOpen)
             return;